/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.boot.core.pojo;

import cn.hutool.core.util.ObjectUtil;

import java.io.Serializable;

/**
 * 所有的Java Bean对象都应该继承该类，表示拥有 可序列化与克隆 的能力。
 *
 * @param <POJO> 所有的 VO、QO、BO、DTO、DO/PO 统称为 POJO
 */
public abstract class BasePOJO<POJO> implements Cloneable, Serializable {

    /**
     * 克隆对象
     */
    public POJO clone(POJO pojo) {
        return ObjectUtil.clone(pojo);
    }

    /**
     * 创建对象的副本
     */
    public abstract POJO copy();

}
